package com.jcark.ui.dialog.style;

import android.content.Context;
import android.graphics.drawable.Drawable;

import androidx.annotation.ColorRes;
import androidx.annotation.StyleRes;

/**
 * 可变样式的对话框<br>
 * Description: <br>
 * <li>标题和内容至少返回一个，左右按钮至少显示一个</li>
 * <li>文本返回0时，文本控件不显示</li>
 * <li>样式返回0时，控件使用默认样式</li>
 *
 * @author King.Zi<br>
 * @date 2022/2/17<br>
 * Email: 78688689@qq.com
 */
public interface IMutableDialogStyle {
    /**
     * 获取对话框主体颜色
     *
     * @return
     */
    @ColorRes
    int getMainColor();

    /**
     * 获取对话框标题文本样式
     *
     * @return 对话框标题文本样式，返回0时使用默认
     */
    @StyleRes
    int getTitleTextStyle();

    /**
     * 获取对话框内容文本样式
     *
     * @return 内容文本样式，返回0时使用默认
     */
    @StyleRes
    int getContentTextStyle();

    /**
     * 获取对话框左按钮文本样式
     *
     * @return 左按钮文本样式，返回0时使用默认
     */
    @StyleRes
    int getLeftButtonTextStyle();

    /**
     * 获取对话框左按钮背景
     *
     * @param context 上下文
     * @return 左按钮背景, 返回null时使用默认背景
     */
    Drawable getLeftButtonBackground(Context context);

    /**
     * 获取对话框右按钮文本样式
     *
     * @return 右按钮文本样式，返回0时使用默认
     */
    @StyleRes
    int getRightButtonTextStyle();

    /**
     * 获取对话框右按钮背景
     *
     * @param context 上下文
     * @return 右按钮背景, 返回null时使用默认背景
     */
    Drawable getRightButtonBackground(Context context);
}
